Matplotlib 中等高线图(contour)的绘制
前言
在此前的文章里,我们介绍了 Numpy 中 meshgrid 函数的应用,并提到了等高线图的使用。
今天,我们来介绍一下 matplotlib 中等高线图的绘制。
先上图来看一下等高线图的绘制效果,是不是很炫啊。
下面我们来分步骤介绍 matplotlib 中等高线图(contour)的绘制。
数据初始化
import matplotlib
import numpy as np
import matplotlib.cm as cm
import matplotlib.mlab as mlab
import matplotlib.pyplot as plt
%matplotlib inline
# 定义等高线高度函数
def f(x, y):
return (1 - x / 2 + x ** 5 + y ** 3) * np.exp(- x ** 2 - y ** 2)
# 数据数目
n = 256
# 定义x, y
x = np.linspace(-3, 3, n)
y = np.linspace(-3, 3, n)
# 生成网格数据
X, Y = np.meshgrid(x, y)
注:数据初始化过程中用到了 Numpy 的 meshgrid 函数,有兴趣的同学可以了解下这个函数的使用,链接如下:
仅绘制等高线
# 设置图像大小尺寸
plt.figure(figsize=(10,6))
# 填充等高线的颜色, 8是等高线分为几部分
plt.contour(X, Y,f(X, Y), 8,alpha = 0.75, cmap = plt.cm.hot)
结果如下:
仅填充等高区域颜色:
# 设置图像大小尺寸
plt.figure(figsize=(10,6))
# 填充等高区域的颜色, 8是等高线分为几部分
plt.contourf(X, Y,f(X, Y), 8, alpha = 0.75, cmap = plt.cm.hot)
结果如下:
绘制完整的等高线图
# 设置图像大小尺寸
plt.figure(figsize=(10,6))
# 填充等高线的颜色, 8是等高线分为几部分
plt.contourf(X, Y, f(X, Y), 8, alpha = 0.75, cmap = plt.cm.hot)
C = plt.contour(X,Y, f(X,Y), 8, colors='black', linewidth=8)
# 绘制等高线数据
plt.clabel(C, inline = True, fontsize = 10)
# 去除坐标轴
plt.xticks(())
plt.yticks(())
plt.show()
结果如下:
是不是很容易实现啊,赶快动手来试试吧。
End
精选文章(点击图片即可查看文章):
机器学习很枯燥,不想继续学了怎么办?或许,这些建议值得一看
公众号导航
ID:PyDataRoad
在微信公众号后台回复数字「 1 」,获取公众号导航内容,包括部分文章源代码,精华文章等。
在微信公众号后台回复「 微信群 」,和小伙伴们一起入群。